package task

import (
	"context"
	"duoke/service"
	"fmt"
	"github.com/gogf/gf/v2/os/gcron"
	"github.com/sirupsen/logrus"
)

var (
	cronCtx    context.Context
	cronCancel context.CancelFunc
)

func Init() {
	go Start()
}
func Start() {
	logrus.Println("其他代码继续执行...")
	cronCtx, cronCancel = context.WithCancel(context.Background())
	// 每天凌晨4点执行任务检查订单是否有效  如果无效则更改状态
	_, err := gcron.Add(cronCtx, "0 0 4 * * *", func(ctx context.Context) {
		service.CourseOrder.TimerOrder()
		fmt.Println("定时器执行了")
		logrus.Info("定时器执行了")
	})
	if err != nil {
		logrus.Fatalf("定时任务注册失败: %v", err)
	}
	logrus.Info("✅ 定时器已启动")
}

// Stop 停止定时器
func Stop() {
	if cronCancel != nil {
		cronCancel()
		logrus.Info("定时器已停止")
	}
}
